package io.finer.erp.jeecg.purchase.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 采购订单
 * </p>
 *
 * @author yaoyifan
 * @since 2021-06-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="PurchaseOrder对象", description="采购订单")
public class PurchaseOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    @ApiModelProperty(value = "单据编号")
    private String billNo;

    @ApiModelProperty(value = "供应商")
    private String supplierId;

    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "单据日期")
    private Date billDate;

    @ApiModelProperty(value = "申请部门")
    private String sysOrgCode;

    @ApiModelProperty(value = "申请人")
    private String buyer;

    @ApiModelProperty(value = "币种")
    private String currencyId;

    @ApiModelProperty(value = "收货库位")
    private String destWarehouseId;

    @ApiModelProperty(value = "收货地址")
    private String destShipAddressId;

    @ApiModelProperty(value = "收单地址")
    private String destBillAddressId;

    @ApiModelProperty(value = "紧急程度")
    private String emergencyLevel;

    @ApiModelProperty(value = "单据处理状态")
    private String billProcStatus;

    @ApiModelProperty(value = "合计")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "税额")
    private BigDecimal taxAmount;

    @ApiModelProperty(value = "已取消金额")
    private BigDecimal cancelledAmount;

    @ApiModelProperty(value = "净合计")
    private BigDecimal netAmount;

    @ApiModelProperty(value = "对账单地址")
    private String billAddressId;

    @ApiModelProperty(value = "供应商联系人")
    private String supplierContact;

    @ApiModelProperty(value = "合同信息")
    private String contract;

    @ApiModelProperty(value = "付款条款")
    private String paymentTermsId;

    @ApiModelProperty(value = "法律条款")
    private String clauseId;

    @ApiModelProperty(value = "作废原因")
    private String invalidationReason;

    @ApiModelProperty(value = "附件")
    private String attachment;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "来源")
    private String source;

    @ApiModelProperty(value = "制单人")
    private String createBy;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改人")
    private String updateBy;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "版本")
    private Integer version;


}
